package com.example.jeudupendu;

import java.util.ArrayList;
import java.util.Random;

import android.content.Context;

public class Controleur {
	private Model mon_model;
	private ArrayList<String> mes_lignes;
	private Context mon_context;
	private ArrayList<Partie> mesParties;
	
	public Controleur(Context vcontext){
		mon_context = vcontext;
		mon_model = new Model("mots.txt", mon_context);	
		this.recup_mots();
		mesParties = new ArrayList();
		this.demarre_partie();
	}
	
	public ArrayList getMesLignes(){
		return mes_lignes;
	}
	
	public ArrayList getMesParties(){
		return mesParties;
	}
	
	public void setMonModel(Model pModel){
		mon_model = pModel;
	}
	public void setMesLignes(ArrayList Lignes){
		mes_lignes = Lignes;
	}
	public void recup_mots(){
		if(mon_model.ouvrir_fichier() == true){
			mes_lignes = mon_model.lire_fichier();
			mon_model.fermer_fichier();	
			
		}
	}
	
	public String demarre_partie(){
		String vRetour;
		if(this.choisir_mot().equalsIgnoreCase("@vide") == false)
		{
			mesParties.add(new Partie(this.choisir_mot()));
			int i = mesParties.size() -1;
			Partie P = mesParties.get(i) ;
			 return vRetour = P.getMonMotSecret();
		}
		else
		{
			return vRetour = "@Vide";
		}
		
	}
	
	public String choisir_mot(){
		String vretour;
		if(mes_lignes.size() != 0){
			Random rand = new Random();
			int nombreAleatoire = rand.nextInt(mes_lignes.size());
			vretour = mes_lignes.get(nombreAleatoire);
			mes_lignes.remove(nombreAleatoire);
		}
		else
		{
			vretour ="@vide";
		}
		return vretour;
	}
	
	public String[] recoit_caractere(char c){
		String[] vretour = {"","","",""};
		int index = mesParties.size()-1 ;
		mesParties.get(index).modifier_mot_secret(c);
		if(mesParties.get(index).getPartieGagnee() == true){
			vretour[2] = "@gagne";
		}
		if(mesParties.get(index).getPartieperdue() == true){
			vretour[2] = "@perdue";
		}
		
		if(mesParties.get(index).getPartieperdue() == false && mesParties.get(index).getPartieGagnee() == false){
			vretour[0] = mesParties.get(index).getMonMotSecret();
		}
		vretour[1] = mesParties.get(index).getMonMot();
		vretour[3] = Integer.toString(mesParties.get(index).getNbCoups());
		return vretour;
	}
	
	public String[] recoit_mot(String vmot){
		String[] vretour = {"","","",""};
		int index = mesParties.size()-1 ;
		mesParties.get(index).verif_mot(vmot);
		if(mesParties.get(index).getPartieGagnee() == true){
			vretour[2] = "@gagne";
		}
		if(mesParties.get(index).getPartieperdue() == true){
			vretour[2] = "@perdue";
		}
		
		if(mesParties.get(index).getPartieGagnee() == false && mesParties.get(index).getPartieGagnee() == false){
			vretour[0] = mesParties.get(index).getMonMotSecret();
		}
		vretour[1] = mesParties.get(index).getMonMot();
		vretour[3] = Integer.toString(mesParties.get(index).getNbCoups());
		return vretour;
	}
	
	public String retourne_aide(){
		String vretour;
		int index = mesParties.size()-1 ;
		return vretour = mesParties.get(index).getMonAide();
	}
	
}
